1. Field
The present disclosure relates to adding or updating information in a distributed network, and more particularly to an apparatus and method of adding or updating information in a structured overlay network.
2. Background
In distributed networks, different network resources, such as data, processors, etc., are located at and distributed across various computing devices in the network. The computing devices interact with each other to perform various tasks. An overlay network, one type of distributed network, is a virtual network of nodes and logical links that is built on top of an existing network. Examples of an overlay network include, but are not limited to, the Internet, Chord, Content Addressable Network (CAN), Pastry, and Viceroy. In some overlay networks, each node can store a portion of overlay network data, called a partition, so as to distribute the data across the network to increase network efficiency in storage and retrieval of the data.
A device or node that joins an overlay network may desire to obtain a service from another device or node in the overlay network. Such services are published in the overlay network using any one of a plurality of service description languages, each having a corresponding service discovery protocol for use to find the published service. A definition of service discovery as given by Wikipedia states: “[s]ervice discovery protocols are network protocols which allow automatic detection of devices and services offered by these devices on a computer network.” In other words, service discovery is the action of finding a service provider for a requested service. When the location of the demanded service (typically the address of the service provider) is retrieved, the user may further access and use it.
In general, service discovery protocols include two entities: (a) the service provider—who provides the service on the overlay, and (b) the client—who uses the service. In one aspect, examples of a service provider include nodes which provide services such as printing, scanning, faxing, storage, music share, file share, games, and web services such as for booking movie tickets, hotels, air tickets, or online gaming, etc. Further, any node in the network can act as a client. Thus, the goal of service discovery is to help the client find a service provider for a particular service of interest (if such a service exists).
In the prior art, a problem exists in adding or updating information to the overlay. In the prior art, a new document requires one PUT command for the document and one each for every keyword present in the document. If the document has K keywords, then K PUT commands need to be separately issued and this would require O(K log N) messages, wherein N is the total number of nodes in the overlay. This process is expensive and results in a great amount of network overhead.
Thus, it would be desirable to have a method of adding or updating information to the overlay that is less costly and more efficient.